{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Training to Predict Time Series"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_steps = 20\n",
    "n_inputs = 1\n",
    "n_neurons = 100\n",
    "n_outputs = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "t_min, t_max = 0, 30\n",
    "resolution = 0.1\n",
    "\n",
    "def time_series(t):\n",
    "    return t * np.sin(t) / 3 + 2 * np.sin(t*5)\n",
    "\n",
    "def next_batch(batch_size, n_steps):\n",
    "    t0 = np.random.rand(batch_size, 1) * (t_max - t_min - n_steps * resolution)\n",
    "    Ts = t0 + np.arange(0., n_steps + 1) * resolution\n",
    "    ys = time_series(Ts)\n",
    "    return ys[:, :-1].reshape(-1, n_steps, 1), ys[:, 1:].reshape(-1, n_steps, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])\n",
    "y = tf.placeholder(tf.float32, [None, n_steps, n_outputs])\n",
    "#cell = tf.contrib.rnn.BasicRNNCell(num_units=n_neurons, activation=tf.nn.relu)\n",
    "cell = tf.contrib.rnn.OutputProjectionWrapper(\n",
    "    tf.contrib.rnn.BasicRNNCell(num_units=n_neurons, activation=tf.nn.relu),\n",
    "    output_size=n_outputs)\n",
    "outputs, states = tf.nn.dynamic_rnn(cell, X, dtype=tf.float32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "learning_rate = 0.001\n",
    "loss = tf.reduce_mean(tf.square(outputs - y))\n",
    "optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n",
    "training_op = optimizer.minimize(loss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "init = tf.global_variables_initializer()\n",
    "saver = tf.train.Saver()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_iterations = 1000  # 10000\n",
    "batch_size = 50"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 \tMSE: 10.997687\n",
      "100 \tMSE: 0.40807176\n",
      "200 \tMSE: 0.09979551\n",
      "300 \tMSE: 0.06309781\n",
      "400 \tMSE: 0.06689735\n",
      "500 \tMSE: 0.0620997\n",
      "600 \tMSE: 0.060066123\n",
      "700 \tMSE: 0.054068338\n",
      "800 \tMSE: 0.03778996\n",
      "900 \tMSE: 0.047708325\n"
     ]
    }
   ],
   "source": [
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    for iteration in range(n_iterations):\n",
    "        X_batch, y_batch = next_batch(batch_size, n_steps)  # fetch the next training batch\n",
    "        sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
    "        if iteration % 100 == 0:\n",
    "            mse = loss.eval(feed_dict={X: X_batch, y: y_batch})\n",
    "            print(iteration, \"\\tMSE:\", mse)\n",
    "            \n",
    "    saver.save(sess, \"./my_time_series_model\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "t = np.linspace(t_min, t_max, int((t_max - t_min) / resolution))\n",
    "\n",
    "n_steps = 20\n",
    "t_instance = np.linspace(12.2, 12.2 + resolution * (n_steps + 1), n_steps + 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Restoring parameters from ./my_time_series_model\n"
     ]
    }
   ],
   "source": [
    "with tf.Session() as sess:                          # not shown in the book\n",
    "    saver.restore(sess, \"./my_time_series_model\")   # not shown\n",
    "\n",
    "    X_new = time_series(np.array(t_instance[:-1].reshape(-1, n_steps, n_inputs)))\n",
    "    y_pred = sess.run(outputs, feed_dict={X: X_new})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.title(\"Testing the model\", fontsize=14)\n",
    "plt.plot(t_instance[:-1], time_series(t_instance[:-1]), \"bo\", markersize=10, label=\"instance\")\n",
    "plt.plot(t_instance[1:], time_series(t_instance[1:]), \"w*\", markersize=10, label=\"target\")\n",
    "plt.plot(t_instance[1:], y_pred[0,:,0], \"r.\", markersize=10, label=\"prediction\")\n",
    "plt.legend(loc=\"upper left\")\n",
    "plt.xlabel(\"Time\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Generating a creative new sequence"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Restoring parameters from ./my_time_series_model\n"
     ]
    }
   ],
   "source": [
    "with tf.Session() as sess:                        # not shown in the book\n",
    "    saver.restore(sess, \"./my_time_series_model\") # not shown\n",
    "\n",
    "    sequence = [0.] * n_steps\n",
    "    for iteration in range(300):\n",
    "        X_batch = np.array(sequence[-n_steps:]).reshape(1, n_steps, 1)\n",
    "        y_pred = sess.run(outputs, feed_dict={X: X_batch})\n",
    "        sequence.append(y_pred[0, -1, 0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8,4))\n",
    "plt.plot(np.arange(len(sequence)), sequence, \"b-\")\n",
    "plt.plot(t[:n_steps], sequence[:n_steps], \"b-\", linewidth=3)\n",
    "plt.xlabel(\"Time\")\n",
    "plt.ylabel(\"Value\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Restoring parameters from ./my_time_series_model\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "with tf.Session() as sess:\n",
    "    saver.restore(sess, \"./my_time_series_model\")\n",
    "\n",
    "    sequence1 = [0. for i in range(n_steps)]\n",
    "    for iteration in range(len(t) - n_steps):\n",
    "        X_batch = np.array(sequence1[-n_steps:]).reshape(1, n_steps, 1)\n",
    "        y_pred = sess.run(outputs, feed_dict={X: X_batch})\n",
    "        sequence1.append(y_pred[0, -1, 0])\n",
    "\n",
    "    sequence2 = [time_series(i * resolution + t_min + (t_max-t_min/3)) for i in range(n_steps)]\n",
    "    for iteration in range(len(t) - n_steps):\n",
    "        X_batch = np.array(sequence2[-n_steps:]).reshape(1, n_steps, 1)\n",
    "        y_pred = sess.run(outputs, feed_dict={X: X_batch})\n",
    "        sequence2.append(y_pred[0, -1, 0])\n",
    "\n",
    "plt.figure(figsize=(11,4))\n",
    "plt.subplot(121)\n",
    "plt.plot(t, sequence1, \"y-\")\n",
    "plt.plot(t[:n_steps], sequence1[:n_steps], \"b-\", linewidth=3)\n",
    "plt.xlabel(\"Time\")\n",
    "plt.ylabel(\"Value\")\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.plot(t, sequence2, \"r-\")\n",
    "plt.plot(t[:n_steps], sequence2[:n_steps], \"b-\", linewidth=3)\n",
    "plt.xlabel(\"Time\")\n",
    "#save_fig(\"creative_sequence_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
